package com.cyt.sys.service;

import com.cyt.base.model.dto.ReturnResult;
import com.cyt.sys.model.po.SysUserToken;
import com.cyt.sys.model.po.SysUser;
import com.cyt.sys.model.vo.SysUserTokenVo;

import java.util.List;

/**
 * 系统模块-用户TokenService层接口类
 *
 * @author congcong tao
 * @date 2019-4-24 9:38:22
 */
public interface SysUserTokenService extends BaseService<SysUserToken> {

    /**
     * 查询对象集合
     *
     * @param sysUserTokenVo 对象
     * @return List 对象集合
     * @author congcong tao
     * @date 2019-4-24 9:38:22
     */
    List<SysUserToken> listExample(SysUserTokenVo sysUserTokenVo);

    /**
     * 分页查询
     *
     * @param sysUserTokenVo 接受参数对象
     * @param pageNum         分页数
     * @param pageSize        每页显示条数
     * @return ReturnResult
     * @author congcong tao
     * @date 2019-4-24 9:38:22
     */
    ReturnResult page(SysUserTokenVo sysUserTokenVo, int pageNum, int pageSize);

    /**
     * 添加或更新
     *
     * @param sysUserTokenVo 参数接受对象
     * @param currentUser     当前用户
     * @return ReturnResult
     * @author congcong tao
     * @date 2019-4-24 9:38:22
     */
    ReturnResult addOrUpdate(SysUserTokenVo sysUserTokenVo, SysUser currentUser);

    /**
     * 根据主键id集合软删除
     *
     * @param ids         主键id集合，多个以‘，’隔开
     * @param currentUser 当前用户
     * @return ReturnResult
     * @author congcong tao
     * @date 2019-4-24 9:38:22
     */
    ReturnResult deleteByIds(String ids, SysUser currentUser);

    /**
     * 根据token获取用户信息
     *
     * @param token
     * @author congcong tao
     * @date 2019/4/24 11:54
     */
    SysUserToken selectByToken(String token);

    /**
     * 插入token
     *
     * @param userId
     * @author congcong tao
     * @date 2019/4/24 12:49
     */
    ReturnResult insertToken(String userId);
}